<Project Sdk="Microsoft.NET.Sdk">

  <PropertyGroup>
    <TargetFrameworks>$(NetCoreAppCurrent)-windows;$(NetCoreAppCurrent);$(NetCoreAppMinimum)-windows;$(NetCoreAppMinimum)</TargetFrameworks>
    <TargetFrameworks Condition="'$(NetCoreAppPrevious)' != ''">$(TargetFrameworks);$(NetCoreAppPrevious)-windows;$(NetCoreAppPrevious)</TargetFrameworks>
    <AllowUnsafeBlocks>true</AllowUnsafeBlocks>
    <EnableAOTAnalyzer>false</EnableAOTAnalyzer>
    <UseCompilerGeneratedDocXmlFile>false</UseCompilerGeneratedDocXmlFile>
    <IsPackable>true</IsPackable>
    <PackageDescription>Provides miscellaneous Windows-specific types

Commonly Used Types:
System.Security.Cryptography.X509Certificates.X509Certificate2UI
System.Security.Cryptography.X509Certificates.X509SelectionFlag</PackageDescription>
  </PropertyGroup>

  <!-- DesignTimeBuild requires all the TargetFramework Derived Properties to not be present in the first property group. -->
  <PropertyGroup>
    <TargetPlatformIdentifier>$([MSBuild]::GetTargetPlatformIdentifier('$(TargetFramework)'))</TargetPlatformIdentifier>
    <GeneratePlatformNotSupportedAssemblyMessage Condition="'$(TargetPlatformIdentifier)' != 'windows'">SR.PlatformNotSupported_System_Windows_Extensions</GeneratePlatformNotSupportedAssemblyMessage>
  </PropertyGroup>

  <ItemGroup Condition="'$(TargetPlatformIdentifier)' == 'windows'">
    <Compile Include="TypeForwards.cs" />
    <Compile Include="$(CommonPath)Interop\Windows\Crypt32\Interop.CERT_CONTEXT.cs"
             Link="Common\Interop\Windows\Crypt32\Interop.CERT_CONTEXT.cs" />
    <Compile Include="$(CommonPath)Interop\Windows\Crypt32\Interop.CERT_INFO.cs"
             Link="Common\Interop\Windows\Crypt32\Interop.CERT_INFO.cs" />
    <Compile Include="$(CommonPath)Interop\Windows\Crypt32\Interop.CERT_PUBLIC_KEY_INFO.cs"
             Link="Common\Interop\Windows\Crypt32\Interop.CERT_PUBLIC_KEY_INFO.cs" />
    <Compile Include="$(CommonPath)Interop\Windows\Crypt32\Interop.CRYPT_ALGORITHM_IDENTIFIER.cs"
             Link="Common\Interop\Windows\Crypt32\Interop.CRYPT_ALGORITHM_IDENTIFIER.cs" />
    <Compile Include="$(CommonPath)Interop\Windows\Crypt32\Interop.CRYPT_BIT_BLOB.cs"
             Link="Common\Interop\Windows\Crypt32\Interop.CRYPT_BIT_BLOB.cs" />
    <Compile Include="$(CommonPath)Interop\Windows\Crypt32\Interop.CertAddCertificateLinkToStore.cs"
             Link="Common\Interop\Windows\Crypt32\Interop.CertAddCertificateLinkToStore.cs" />
    <Compile Include="$(CommonPath)Interop\Windows\Crypt32\Interop.CertCloseStore.cs"
             Link="Common\Interop\Windows\Crypt32\Interop.CertCloseStore.cs" />
    <Compile Include="$(CommonPath)Interop\Windows\Crypt32\Interop.CertContextPropId.cs"
             Link="Common\Interop\Windows\Crypt32\Interop.CertContextPropId.cs" />
    <Compile Include="$(CommonPath)Interop\Windows\Crypt32\Interop.CertDuplicateCertificateContext.cs"
             Link="Common\Interop\Windows\Crypt32\Interop.CertDuplicateCertificateContext.cs" />
    <Compile Include="$(CommonPath)Interop\Windows\Crypt32\Interop.CertEnumCertificatesInStore_IntPtr.cs"
             Link="Common\Interop\Windows\Crypt32\Interop.CertEnumCertificatesInStore_IntPtr.cs" />
    <Compile Include="$(CommonPath)Interop\Windows\Crypt32\Interop.CertFreeCertificateContext.cs"
             Link="Common\Interop\Windows\Crypt32\Interop.CertFreeCertificateContext.cs" />
    <Compile Include="$(CommonPath)Interop\Windows\Crypt32\Interop.CertGetCertificateContextProperty_NO_NULLABLE.cs"
             Link="Common\Interop\Windows\Crypt32\Interop.CertGetCertificateContextProperty_NO_NULLABLE.cs" />
    <Compile Include="$(CommonPath)Interop\Windows\Crypt32\Interop.CertOpenStore.cs"
             Link="Common\Interop\Windows\Crypt32\Interop.CertOpenStore.cs" />
    <Compile Include="$(CommonPath)Interop\Windows\CryptUI\Interop.CryptUIDlgCertificate.cs"
             Link="Common\Interop\Windows\Crypt32\Interop.CryptUIDlgCertificate.cs" />
    <Compile Include="$(CommonPath)Interop\Windows\Crypt32\Interop.DATA_BLOB.cs"
             Link="Common\Interop\Windows\Crypt32\Interop.DATA_BLOB.cs" />
    <Compile Include="$(CommonPath)Interop\Windows\User32\Interop.MessageBeep.cs"
             Link="Common\Interop\Windows\User32\Interop.MessageBeep.cs" />
    <Compile Include="$(CommonPath)Interop\Windows\Crypt32\Interop.MsgEncodingType.cs"
             Link="Common\Interop\Windows\Crypt32\Interop.MsgEncodingType.cs" />
    <Compile Include="$(CommonPath)Interop\Windows\WinMm\Interop.MMCKINFO.cs"
             Link="Common\Interop\Windows\WinMm\Interop.MMCKINFO.cs" />
    <Compile Include="$(CommonPath)Interop\Windows\WinMm\Interop.mmioAscend.cs"
             Link="Common\Interop\Windows\WinMm\Interop.mmioAscend.cs" />
    <Compile Include="$(CommonPath)Interop\Windows\WinMm\Interop.mmioClose.cs"
             Link="Common\Interop\Windows\WinMm\Interop.mmioClose.cs" />
    <Compile Include="$(CommonPath)Interop\Windows\WinMm\Interop.mmioDescend.cs"
             Link="Common\Interop\Windows\WinMm\Interop.mmioDescend.cs" />
    <Compile Include="$(CommonPath)Interop\Windows\WinMm\Interop.mmioRead.cs"
             Link="Common\Interop\Windows\WinMm\Interop.mmioRead.cs" />
    <Compile Include="$(CommonPath)Interop\Windows\WinMm\Interop.mmioOpen.cs"
             Link="Common\Interop\Windows\WinMm\Interop.mmioOpen.cs" />
    <Compile Include="$(CommonPath)Interop\Windows\WinMm\Interop.PlaySound.cs"
             Link="Common\Interop\Windows\WinMm\Interop.PlaySound.cs" />
    <Compile Include="$(CommonPath)Interop\Windows\Interop.Libraries.cs"
             Link="Common\Interop\Windows\Interop.Libraries.cs" />
    <Compile Include="$(CommonPath)Microsoft\Win32\SafeHandles\SafeHandleCache.cs"
             Link="Common\Microsoft\Win32\SafeHandles\SafeHandleCache.cs" />
    <Compile Include="$(CommonPath)Microsoft\Win32\SafeHandles\SafeCrypt32Handle.cs"
             Link="Common\Microsoft\Win32\SafeHandles\SafeCrypt32Handle.cs" />
    <Compile Include="$(CommonPath)Microsoft\Win32\SafeHandles\SafeCertContextHandle.cs"
             Link="Common\Microsoft\Win32\SafeHandles\SafeCertContextHandle.cs" />
    <Compile Include="$(CommonPath)Microsoft\Win32\SafeHandles\SafeCertStoreHandle.cs"
             Link="Common\Microsoft\Win32\SafeHandles\SafeCertStoreHandle.cs" />
    <Compile Include="System\Security\Cryptography\X509Certificates\X509Certificate2UI.cs" />
    <Compile Include="System\Security\Cryptography\X509Certificates\X509Utils.cs" />
    <Compile Include="System\Media\SoundPlayer.cs" />
    <Compile Include="System\Media\SystemSound.cs" />
    <Compile Include="System\Media\SystemSounds.cs" />
    <Compile Include="System\Xaml\Permissions\XamlAccessLevel.cs" />
    <Compile Include="$(CommonPath)System\Obsoletions.cs"
             Link="Common\System\Obsoletions.cs" />
    <Compile Include="$(CommonPath)DisableRuntimeMarshalling.cs"
             Link="Common\DisableRuntimeMarshalling.cs"
             Condition="'$(TargetFrameworkIdentifier)' == '.NETCoreApp'" />
  </ItemGroup>

  <ItemGroup>
    <!-- Avoid a product dependency to System.Drawing.Common, this reference is only needed for TypeForwards -->
    <ProjectReference Include="$(LibrariesProjectRoot)shims\stubs\System.Drawing.Common.csproj" PrivateAssets="all" />
  </ItemGroup>

</Project>
